<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    /*
     *运算符也叫操作符
     *通过运算符可以对一个或者多个值进行运算，并获取运算结果
     *比如：typeof就是一个运算符，可以获得一个值的数据类型
     *typeof将该值的类型以字符串的数据类型表示，所以console.log()的输出值是string
     */
    var a=123;
    var result=typeof a;
    console.log(result);
    console.log(typeof result);

    /*
     *算数运算符
     *当非Number数据类型进行运算时，先将其转换为Number类型然后再进行运算
     *任何值和NaN做运算都得NaN，true转为Number为1，false转为Number为0，null转为Number为0
     * + 可以对两个值进行加法运算，并将结果返回
     *如果对两个字符串进行相加，那么就是两个字符串相叠，比如"123"+"321"="123321"
     *任何值和字符串做加法运算，都会先转换为字符串，然后再进行想加
     * - 可以对两个值进行减法运算，并将结果返回
     *除了加法是转换成字符串进行相加，其余的都是转换成Number类型进行运算
     * * 可以对两个值进行乘法运算
     * / 可以对两个值进行除法运算
     * ％ 
     */
    var b=123;
    b=b+1;
    console.log(b);//124
    var c="123"+"321";
    console.log(c);//123321

    var d="123"+321;
    console.log(d);//123321
    var e=true+"hello";
    console.log(e);//truehello
    
    //任何值和字符串想加都会转换为字符串
    //利用这一特点，可以将任意一个数据类型转换为字符串类型
    //任意数据类型+""，就可以将其变为字符串类型
    //此功能由浏览器完成，他也是调用了String()函数
    var f=321;
    f=f+"";
    console.log(typeof f);

    //减法运算
    var g=100-true;
    var h=100-"1";
    console.log(g);//99
    console.log(h);//99

    //乘法运算
    var i1=2*2;
    var i2=2*"8";
    var i3=2*undefined;
    console.log(i1);//4
    console.log(i2);//16
    console.log(i3);//NaN

    //除法运算
    var j1=4/2;
    console.log(j1);
    var j2="123"-0;
    console.log(typeof j2);
    //任何值做- * /运算时都会自动转换为Number
    //可以利用这一点做隐式的类型转换
    //通过为一个值-0或者*1或者/1来将其转换为Number

    //％运算，取余数
    var k1=9%4;
    console.log(k1);//1
    </script>

</head>
<body>
    
</body>
</html>
